package tv.acgn.advertisement.publish.vo.creative;

import javax.persistence.Column;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;

import lombok.Data;
import tv.acgn.advertisement.publish.validator.group.GroupUpdate;
import tv.acgn.advertisement.publish.validator.message.CreativeValidateMessage;

/**
 * @author : junG
 * @program : advertisement-ad-pub-vo
 * @description : 创意 请求对象
 * @date : 2019-05-27 00:03
 **/

@Data
public class CreativeRequestVO {

    /**
     * 广告素材 识别码
     */
    @NotBlank(message = CreativeValidateMessage.CREATIVE_ID_NOT_BLANk, groups = {GroupUpdate.class})
    private String creativeId;

    /**
     * 广告素材 所属的用户身份码
     */
    @NotBlank(message = CreativeValidateMessage.USER_ID_NOT_BLANK)
    private String userId;

    @NotBlank(message = CreativeValidateMessage.CREATIVE_NAME_NOT_BLANk)
    private String name;

    private String type;

    /**
     * 广告素材 文件类型
     * 比如图片可以是 bmp，jpeg，webg 等
     */
    @NotBlank(message = CreativeValidateMessage.MATERIAL_TYPE_ID_NOT_BLANK)
    private String materialType;

    /**
     * 素材展示时 所占高度
     */
    private Long height;

    /**
     * 素材展示时 所占宽度
     */
    private Long width;

    /**
     * 素材大小
     */
    @Min(value = 0)
    private Long size;

    /**
     * 素材 持续时间
     * 只有流媒体不为0
     */
    @Min(value = 0)
    private Integer duration;

    /**
     * 素材审核状态
     * 未通过审核的素材 不能发布到公开平台
     * 只能使用 {@link AuditStatus}中的值
     */
    @Column(name = "audit_status", nullable = false)
    private Integer auditStatus;

    /**
     * 素材 存储位置 引用一个资格资源定位符
     */
    @NotBlank(message = CreativeValidateMessage.URI_NOT_BLANK)
    private String URI;

}
